//*************************** */
//声明数组并赋值
let arr1 = [1, 2, 3, 4, 5];

let arr2 = new Array(1, 2, 3, 4, 5);

//创建一个长度为5的空数组
let arr_5 = new Array(5);
console.log(arr_5);

//************************** */
//下标访问数组
console.log(arr1[2]);

//如果有负数访问会被当成是对象的键匹配，最终为undefined
console.log(arr1[-2]); //undefined

//************************* */
//js数组能存储任意类型的数据
function add(a, b) {
  return a + b;
}

let arr3 = [1, 2, "a", add];

//arr3[3]是函数add
console.log(arr3[3](4, 5)); //9

//************************ */
//数组通过访问下标来赋值
let arr4 = [2, 4, 6];
arr4[1] = 5;
console.log(arr4); //[2,5,6]

//如果采用非整型下标来赋值，将是为数组对象创造属性
let arr5 = [];
arr5["abc"] = 18;
//数组的长度为0
console.log(arr5.length); //0
//数组上有属性"abc"
console.log(Object.hasOwn(arr5, "abc")); //true

//*********************** */
//我们可以通过给数组的length赋值来改变数组
//如果赋值>当前数组长度，新的空间将用空槽填充
let arr6 = [1, 2, 3, "a"];
arr6.length = 5;
// [ 1, 2, 3, 'a', <1 empty item> ]
console.log(arr6);

//如果赋值<当前数组长度，原数组将被截断
arr6.length = 2;
//[1,2]
console.log(arr6);

//************************ */
